#ifndef SETNEWZIGBEENETCMD_H
#define SETNEWZIGBEENETCMD_H

#include "Command/BaseCmd.h"
#include "Protocol/ZigbeeConfigProtocol.h"
#include "Protocol/PointProtocol.h"
class CreataNewZigbeeCmd : public BaseCmd
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit CreataNewZigbeeCmd(QObject *parent = 0);

    enum{FunctionCode =  ZigbeeConfigProtocol::CreateNewZigbee};

    Package toPackage();
    void unPackage(Package package);
};


class AllowNewJoinCmd: public BaseCmd
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit AllowNewJoinCmd(QObject *parent = 0);

    enum{FunctionCode =  ZigbeeConfigProtocol::AllowNewJoin};

    Package toPackage();
    void unPackage(Package package);
};

class BanNewJoinCmd : public BaseCmd
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit BanNewJoinCmd(QObject *parent = 0);

    enum{FunctionCode =  ZigbeeConfigProtocol::BanNewJoin};

    Package toPackage();
    void unPackage(Package package);
};

class ResNewZigbeeCmd : public BaseCmd
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit ResNewZigbeeCmd(QObject *parent = 0);

    enum{FunctionCode =  ZigbeeConfigProtocol::ResNewZigbee};

    Package toPackage();
    void unPackage(Package package);
};


class QueryNewZigbeeParamCmd : public BaseCmd
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit QueryNewZigbeeParamCmd(QObject *parent = 0);

    enum{FunctionCode =  ZigbeeConfigProtocol::QueryNewZigbeeParam};

    Package toPackage();
    void unPackage(Package package);
};

class QueryZigbeeVersionCmd : public BaseCmd
{
    Q_OBJECT
public:
    Q_INVOKABLE explicit QueryZigbeeVersionCmd(QObject *parent = 0);

    enum{FunctionCode =  ZigbeeConfigProtocol::QueryZigbeeVersion};

    Package toPackage();
    void unPackage(Package package);
};


#endif // SETNEWZIGBEENETCMD_H
